package com.caioweb.osa.mb;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ViewScoped;
import javax.inject.Inject;

import com.caio.svn.UtilSvn;
import com.caioweb.osa.dao.DAO;
import com.caioweb.osa.modelo.Cliente;
import com.caioweb.osa.transacoes.interceptor.Transactional;

@ViewScoped
public class ClienteBean implements Serializable{

	@Inject
	private Cliente cliente;
	@Inject
	private DAO<Cliente> dao;

	private List<Cliente> clientes = new ArrayList<Cliente>();

	@Transactional
	public void grava() {
		if (cliente.getId() == null) {
			UtilSvn.mensagem("Cliente gravado com sucesso!!" ,true);
			dao.adiciona(cliente);
		} else {
			dao.atualiza(cliente);
		}

		this.cliente = new Cliente();

	}

	@Transactional
	public List<Cliente> clientes() {
		clientes = dao.listaTodos();
		return clientes;

	}
	@Transactional
	public void remove(Cliente cliente){
		dao.remove(cliente);
		this.clientes = dao.listaTodos();
	}

	public Cliente getCliente() {
		return cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	public DAO<Cliente> getDao() {
		return dao;
	}

	public void setDao(DAO<Cliente> dao) {
		this.dao = dao;
	}

	public List<Cliente> getClientes() {
		return clientes;
	}

	public void setClientes(List<Cliente> clientes) {
		this.clientes = clientes;
	}
	
	

}
